home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 551-575 / disk_563 / m2midi / rsx.mod < prev    next >
Text File  |  1992-05-06  |  2KB  |  94 lines

  1. (***************************************************************************
  2.   :Program.       rsx.mod
  3.   :Author.        Jürgen Zimmermann
  4.   :Address.       Ringstraße 6, W-6719 Altleiningen, Germany
  5.   :Phone.         06356/1456
  6.   :ShortCut.      [JnZ]
  7.   :Support.       -
  8.   :Version.       1.0
  9.   :Date.          24. Febuary 1990
  10.   :Copyright.     PD
  11.   :Language.      MODULA-II
  12.   :Translator.    M2Amiga 4.0d
  13.   :Contents.      Demoprogram for the use of "midi.library" in Modula-2
  14.   :Usage.         Just start it!
  15. ****************************************************************************)
  16.  
  17. MODULE rsx;
  18.  
  19.  
  20. FROM SYSTEM IMPORT ADR;
  21.  
  22. FROM Arts IMPORT Assert;
  23.  
  24. FROM Break IMPORT InstallException, RemoveException;
  25.  
  26. FROM InOut IMPORT WriteLn, WriteString, WriteCard, WriteInt;
  27.  
  28. FROM MidiD IMPORT MidiPacket, MidiPacketPtr, MDest, MDestPtr, MRoute, MRoutePtr,
  29.                   MRouteInfo, MRouteInfoPtr, MMFFlags, MMFFlagSet, midiInName;
  30.  
  31. FROM MidiL IMPORT CreateMDest, MRouteDest, GetMidiPacket, FreeMidiPacket,
  32.                   DeleteMRoute, DeleteMDest;
  33.  
  34.  
  35. VAR dest     : MDestPtr;
  36.     routeinfo: MRouteInfo;
  37.     route    : MRoutePtr;
  38.     packet   : MidiPacketPtr;
  39.     pp       : POINTER TO ARRAY[0..6] OF SHORTCARD;
  40.  
  41.  
  42. PROCEDURE CleanUp;
  43.  
  44.    BEGIN
  45.       IF (packet # NIL)
  46.          THEN
  47.             FreeMidiPacket(packet);
  48.             packet:=NIL;
  49.       END; (* IF *)
  50.       IF (route # NIL)
  51.          THEN
  52.             DeleteMRoute(route);
  53.             route:=NIL;
  54.       END; (* IF *)
  55.       IF (dest # NIL)
  56.          THEN
  57.             DeleteMDest(dest);
  58.             dest:=NIL;
  59.       END; (* IF *)
  60.    END CleanUp;
  61.  
  62. BEGIN
  63.    InstallException;
  64.    routeinfo.MsgFlags:=MMFFlagSet{SysEx};
  65.  
  66.    WriteString("Receive Sys/Ex");
  67.    WriteLn;
  68.    dest:=NIL;
  69.    dest:=CreateMDest(NIL,NIL);
  70.    Assert(dest # NIL, ADR("Can't create Dest"));
  71.  
  72.    route:=NIL;
  73.    route:=MRouteDest(ADR(midiInName),dest,ADR(routeinfo));
  74.  
  75.    LOOP
  76.       packet:=GetMidiPacket(dest);
  77.       IF (packet # NIL)
  78.          THEN
  79.             IF (packet^.Length = 7)
  80.                THEN
  81.                   pp:=ADR(packet^.MidiMsg);
  82.                   WriteCard(pp^[3], 10);
  83.                   WriteCard(pp^[4], 10);
  84.                   WriteCard(pp^[5], 20);
  85.             END; (* IF *)
  86.             WriteLn;
  87.             FreeMidiPacket(packet);
  88.       END; (* IF *)
  89.    END; (* LOOP *)
  90. CLOSE
  91.    CleanUp;
  92.    RemoveException;
  93. END rsx.
  94.